package com.junxonline.plat.service.menu;

import com.junxonline.plat.dao.model.Menu;
import com.junxonline.common.dao.pojo.JsTree;
import com.junxonline.plat.dao.vo.MenuVO;
import com.junxonline.plat.dao.vo.PageVO;
import com.junxonline.plat.dao.vo.QueryMenuVO;

import java.util.List;

public interface MenuService {

    /**
     * 获取导航菜单数据
     * @param userId
     * @return
     */
    List<Menu> getNavMenu(Long userId);

    /**
     * 获取按钮数据
     * @param menuUrl
     * @param userId
     * @return
     */
    List<Menu> getButton(String menuUrl, Long userId);

    /**
     * 获取菜单树数据
     * @return
     */
    List<JsTree> getMenuTree();

    /**
     * 获取父级菜单树数据
     * @return
     */
    List<JsTree> getParentMenuTree();

    /**
     * 获取菜单数据
     * @param vo
     * @return
     */
    Menu getMenu(QueryMenuVO vo);

    /**
     * 筛选查询菜单
     * @param page
     * @param vo
     * @return
     */
    PageVO queryMenu(PageVO page, QueryMenuVO vo);


    /**
     * 添加菜单
     * @param vo
     * @return
     */
    boolean addMenu(MenuVO vo);

    /**
     * 修改菜单
     * @param vo
     * @return
     */
    boolean editMenu(MenuVO vo);

    /**
     * 删除菜单
     * @param menuIds
     * @return
     */
    boolean delMenu(Long[] menuIds);

}
